package com.bird.file.switchStream;

import java.io.*;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

/**
 * @author sijunqiang
 * @data 2021/8/1 13:49
 * @description: 转换文件编码
 * 要求：将GBK编码的文本文件, 转换为UTF-8编码的文本文件
 */
public class Switch {



    public static void main(String[] args) throws IOException {

        // 创建转换输入流对象 并指定GBK对数据进行解码
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\m.txt"), "GBK");

        // 创建转换输出流对象 并指定以UTF-8对数据编码进行输出
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\w.txt"), StandardCharsets.UTF_8);

        // 定义变量保存
        int len;
        char[] chars = new char[2];
        while ((len = isr.read(chars)) != -1) {
            osw.write(chars, 0, len);
        }

        osw.flush();
        osw.close();
        isr.close();
    }
}
